↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
PERM_IN_AG(Xs, .(X, Ys)) → U1_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
PERM_IN_AG(Xs, .(X, Ys)) → APP_IN_AAA(X1s, .(X, X2s), Xs)
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U4_AAA(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_AAA(Xs, Ys, Zs)
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_AG(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → APP_IN_GAA(X1s, X2s, Zs)
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → U4_GAA(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_GAA(Xs, Ys, Zs)
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_AG(Xs, X, Ys, perm_in_ag(Zs, Ys))
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → PERM_IN_AG(Zs, Ys)
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
PERM_IN_AG(Xs, .(X, Ys)) → U1_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
PERM_IN_AG(Xs, .(X, Ys)) → APP_IN_AAA(X1s, .(X, X2s), Xs)
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U4_AAA(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_AAA(Xs, Ys, Zs)
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_AG(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → APP_IN_GAA(X1s, X2s, Zs)
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → U4_GAA(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_GAA(Xs, Ys, Zs)
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_AG(Xs, X, Ys, perm_in_ag(Zs, Ys))
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → PERM_IN_AG(Zs, Ys)
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_GAA(Xs, Ys, Zs)
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_GAA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP_IN_GAA(.(Xs)) → APP_IN_GAA(Xs)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_AAA(Xs, Ys, Zs)
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_AAA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PrologToPiTRSProof
APP_IN_AAA → APP_IN_AAA
APP_IN_AAA → APP_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_AG(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → PERM_IN_AG(Zs, Ys)
PERM_IN_AG(Xs, .(X, Ys)) → U1_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_AG(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → PERM_IN_AG(Zs, Ys)
PERM_IN_AG(Xs, .(X, Ys)) → U1_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PrologToPiTRSProof
PERM_IN_AG(.(Ys)) → U1_AG(Ys, app_in_aaa)
U2_AG(Ys, app_out_gaa) → PERM_IN_AG(Ys)
U1_AG(Ys, app_out_aaa(X1s)) → U2_AG(Ys, app_in_gaa(X1s))
app_in_gaa([]) → app_out_gaa
app_in_gaa(.(Xs)) → U4_gaa(app_in_gaa(Xs))
app_in_aaa → app_out_aaa([])
app_in_aaa → U4_aaa(app_in_aaa)
U4_gaa(app_out_gaa) → app_out_gaa
U4_aaa(app_out_aaa(Xs)) → app_out_aaa(.(Xs))
app_in_gaa(x0)
app_in_aaa
U4_gaa(x0)
U4_aaa(x0)
From the DPs we obtained the following set of size-change graphs:
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
PERM_IN_AG(Xs, .(X, Ys)) → U1_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
PERM_IN_AG(Xs, .(X, Ys)) → APP_IN_AAA(X1s, .(X, X2s), Xs)
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U4_AAA(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_AAA(Xs, Ys, Zs)
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_AG(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → APP_IN_GAA(X1s, X2s, Zs)
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → U4_GAA(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_GAA(Xs, Ys, Zs)
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_AG(Xs, X, Ys, perm_in_ag(Zs, Ys))
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → PERM_IN_AG(Zs, Ys)
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PERM_IN_AG(Xs, .(X, Ys)) → U1_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
PERM_IN_AG(Xs, .(X, Ys)) → APP_IN_AAA(X1s, .(X, X2s), Xs)
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U4_AAA(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_AAA(Xs, Ys, Zs)
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_AG(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → APP_IN_GAA(X1s, X2s, Zs)
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → U4_GAA(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_GAA(Xs, Ys, Zs)
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_AG(Xs, X, Ys, perm_in_ag(Zs, Ys))
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → PERM_IN_AG(Zs, Ys)
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_GAA(Xs, Ys, Zs)
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
APP_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_GAA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
APP_IN_GAA(.(Xs)) → APP_IN_GAA(Xs)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_AAA(Xs, Ys, Zs)
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_IN_AAA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
APP_IN_AAA → APP_IN_AAA
APP_IN_AAA → APP_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_AG(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → PERM_IN_AG(Zs, Ys)
PERM_IN_AG(Xs, .(X, Ys)) → U1_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
perm_in_ag([], []) → perm_out_ag([], [])
perm_in_ag(Xs, .(X, Ys)) → U1_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_ag(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_ag(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → U3_ag(Xs, X, Ys, perm_in_ag(Zs, Ys))
U3_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) → perm_out_ag(Xs, .(X, Ys))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U1_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) → U2_AG(Xs, X, Ys, app_in_gaa(X1s, X2s, Zs))
U2_AG(Xs, X, Ys, app_out_gaa(X1s, X2s, Zs)) → PERM_IN_AG(Zs, Ys)
PERM_IN_AG(Xs, .(X, Ys)) → U1_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs))
app_in_gaa([], X, X) → app_out_gaa([], X, X)
app_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U4_gaa(X, Xs, Ys, Zs, app_in_gaa(Xs, Ys, Zs))
app_in_aaa([], X, X) → app_out_aaa([], X, X)
app_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U4_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs))
U4_gaa(X, Xs, Ys, Zs, app_out_gaa(Xs, Ys, Zs)) → app_out_gaa(.(X, Xs), Ys, .(X, Zs))
U4_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) → app_out_aaa(.(X, Xs), Ys, .(X, Zs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
PERM_IN_AG(.(Ys)) → U1_AG(Ys, app_in_aaa)
U1_AG(Ys, app_out_aaa(X1s)) → U2_AG(Ys, app_in_gaa(X1s))
U2_AG(Ys, app_out_gaa(X1s)) → PERM_IN_AG(Ys)
app_in_gaa([]) → app_out_gaa([])
app_in_gaa(.(Xs)) → U4_gaa(Xs, app_in_gaa(Xs))
app_in_aaa → app_out_aaa([])
app_in_aaa → U4_aaa(app_in_aaa)
U4_gaa(Xs, app_out_gaa(Xs)) → app_out_gaa(.(Xs))
U4_aaa(app_out_aaa(Xs)) → app_out_aaa(.(Xs))
app_in_gaa(x0)
app_in_aaa
U4_gaa(x0, x1)
U4_aaa(x0)
From the DPs we obtained the following set of size-change graphs: